export default function useDebounce(callback, delay) {  
    const timeoutRef = ref(null);  
    
    const debouncedCallback = (...args) => {  
      if (timeoutRef.value) {  
        clearTimeout(timeoutRef.value);  
      }  
    
      timeoutRef.value = setTimeout(() => {  
        callback(...args);  
        timeoutRef.value = null; // 清除引用，以便下一次调用可以正确设置新的定时器  
      }, delay);  
    };  
    
    // 在组件卸载时清除可能存在的定时器  
    onUnmounted(() => {  
      if (timeoutRef.value) {  
        clearTimeout(timeoutRef.value);  
      }  
    });  
    
    return debouncedCallback;  
  } 